Setup VPS con cPanel — sartUP

Setup VPS con cPanel — sartUP

Questa guida descrive il setup diretto su VPS con cPanel (senza Docker né deploy).

1) Prerequisiti

  • VPS con cPanel installato
  • Accesso SSH e terminale cPanel
  • PHP 8.2+, Composer 2.7+, MySQL 8.0+
  • DNS del dominio sartup.it puntato all'IP del VPS
  • SSL/TLS gestito automaticamente da cPanel (AutoSSL o Let's Encrypt)
  • 2) Setup dominio in cPanel

  • Crea un Addon Domain o Subdomain per sartup.it
  • Imposta document root su: public_html/sartup/public (Laravel public folder)
  • Verifica che cPanel generi automaticamente il certificato SSL
  • 3) Clona repository

    Via SSH o File Manager di cPanel: ``bash cd ~/public_html git clone <repo-url> sartup cd sartup `

    4) Configurazione database

    In cPanel → MySQL Databases:
  • Crea database: cpanel_user_sartup
  • Crea utente MySQL con password sicura
  • Assegna tutti i privilegi al database
  • 5) Environment

    `bash cd ~/public_html/sartup cp .env.example .env nano .env # oppure usa File Manager di cPanel `

    Imposta almeno: `env APP_URL=https://sartup.it DB_HOST=localhost DB_DATABASE=cpanel_user_sartup DB_USERNAME=cpanel_user_xxxxx DB_PASSWORD=password_sicura `

    6) Installazione dipendenze

    `bash composer install --no-dev --optimize-autoloader php artisan key:generate php artisan migrate --seed php artisan storage:link `

    7) Permessi cartelle

    `bash chmod -R 775 storage bootstrap/cache chown -R cpanel_user:cpanel_user storage bootstrap/cache `

    8) Cron job (Laravel Scheduler)

    In cPanel → Cron Jobs, aggiungi:
    ` * cd ~/public_html/sartup && php artisan schedule:run >> /dev/null 2>&1 `

    9) Code (Queue Worker) - Opzionale

    Se usi code Redis/database, configura un cron ogni 5 minuti:
    ` /5 * cd ~/public_html/sartup && php artisan queue:work --stop-when-empty `

    Oppure usa supervisord se disponibile sul VPS.

    10) .htaccess per Laravel

    Il file
    public/.htaccess di Laravel è già pronto. Verifica che cPanel usi il document root corretto:
  • Document Root: public_html/sartup/public
  • 11) Aggiornamenti

    `bash cd ~/public_html/sartup git pull composer install --no-dev --optimize-autoloader php artisan migrate --force php artisan config:clear php artisan cache:clear `

    12) Verifica

  • https://sartup.it → login page
  • https://sartup.it/admin → dashboard (dopo login)
  • Controlla errori in storage/logs/laravel.log`

Analisi Codice

Blocco 1 bash
cd ~/public_html
git clone <repo-url> sartup
cd sartup
Blocco 2 bash
cd ~/public_html/sartup
cp .env.example .env
nano .env  # oppure usa File Manager di cPanel
Blocco 3 env
APP_URL=https://sartup.it
DB_HOST=localhost
DB_DATABASE=cpanel_user_sartup
DB_USERNAME=cpanel_user_xxxxx
DB_PASSWORD=password_sicura
Blocco 4 bash
composer install --no-dev --optimize-autoloader
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
Blocco 5 bash
chmod -R 775 storage bootstrap/cache
chown -R cpanel_user:cpanel_user storage bootstrap/cache
Blocco 6
* * * * * cd ~/public_html/sartup && php artisan schedule:run >> /dev/null 2>&1
Blocco 7
*/5 * * * * cd ~/public_html/sartup && php artisan queue:work --stop-when-empty
Blocco 8 bash
cd ~/public_html/sartup
git pull
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan config:clear
php artisan cache:clear